package main

import "fmt"

const CTAI  = 32<<(^uint(0) >> 63)
func main()  {
	s := new(Words)
	s.AddData(2)
	fmt.Println(s.HasData(2))
}

type Words struct {
	words []int
}

func (s *Words)AddData(i int)  {
	k,v := handleData(i)
	for k >= len(s.words){
		s.words = append(s.words,0)
	}

	s.words[k] |= 1<<v
}

func (s *Words)HasData(i int) bool  {
	k,v := handleData(i)
	if k > len(s.words) {
		return false
	}

	return (s.words[k] & (1<<v)) != 0
}

func handleData(i int)(b,c int)  {
	return i/CTAI,i%CTAI
}

func AAA() string {
	return "aaa"
}
